package com.cloudcross.ssp.base.service;

import java.util.List;
import java.util.Map;

import com.cloudcross.ssp.common.utils.Pager;
import com.cloudcross.ssp.pulgin.mybatis.plugin.PageView;

/**
 * 所有服务接口都要继承这个
 * 
 * @author wuqiang.du
 * @date 2014-2-11
 * @Email: mmm333zzz520@163.com
 * @version 1.0v
 * @param <T>
 */
public interface BaseService<T> extends Base<T> {
    /**
     * 返回分页后的数据
     * 
     * @param pageView
     * @param t
     * @return
     */
    PageView query(PageView pageView, T t);

    int countByParams(Map<String, Object> paramMap);

    /**
     * 根据查询条件按页统计数据库中该实体<code>T</code>对应记录并以列表返回。
     * 
     * @param paramMap 查询条件
     * @param pager {@link Pager}
     * @return 返回查询到记录列表
     * @see Pager
     */
    List<T> findByParams(Map<String, Object> paramMap, Pager pager);
}
